/*******************************************************************************
 * 版权：北京润尼尔网络科技有限公司，保留所有版权<br>
 * 版本：v1.0.0<br>
 * 文件：PartFactory.js<br>
 * 日期：2016年8月19日<br>
 * 作者: 王志远<br>
 * 功能：元件创建工厂<br>
 * 
 * 修改记录：<br>
 * 日期 描述 更新功能<br>
 ******************************************************************************/

window.makeNamespace(window,"Rainier.UI.V2");

/**
 * 类型名称：Rainier.UI.V2.PartFactory<br>
 * 类型功能：元件创建工厂<br>
 */
Rainier.UI.V2.PartFactory = Rainier.Basic.CompositeObject.extend({
	
	NAME : "Rainier.UI.V2.PartFactory",
	
	/**
	 * 函数名称：Rainier.UI.V2.PartFactory.init<br>
	 * 函数功能：构造函数<br>
	 * 异常信息：无<br>
	 */
	init : function(){
		this._super();
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.AbstractEditPart.createEditPart<br>
	 * 函数功能：通过model创建编辑器<br>
	 * 参数输入：objModel:Rainier.UI.V2.AbstractModel<br>
	 * 函数返回：EditPart<br>
	 * 异常信息：无<br>
	 */
	createObject : function(objModel){
		var part = null;
		
		if(objModel instanceof Rainier.UI.V2.HybridPortModel){
			part = new Rainier.UI.V2.HybridPortEditPart();
		}
		else if(objModel instanceof Rainier.UI.V2.InputPortModel){
			part = new Rainier.UI.V2.InputPortEditPart();
		}
		else if(objModel instanceof Rainier.UI.V2.OutputPortModel){
			part = new Rainier.UI.V2.OutputPortEditPart();
		}
		else if(objModel instanceof Rainier.UI.V2.ConnectionModel){
			part = new Rainier.UI.V2.ConnectionEditPart();
		}
		else if(objModel instanceof Rainier.UI.V2.JointModel){
			part = new Rainier.UI.V2.JointEditPart();
		}
		else if(objModel instanceof Rainier.UI.V2.DeviceModel){
			part = new Rainier.UI.V2.DeviceEditPart();
		}
//		else if(objModel instanceof Rainier.UI.V2.VirtualModel){
//			part = new Rainier.UI.V2.DeviceEditPart();
//		}
		
		return part;
	},
});